package com.vca.common.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List;

/**
 * <p>
 * 课程排课表
 * </p>
 *
 * @author chenBing
 * @since 2022-09-19
 */
@Data
@ApiModel(value = "课程当前所排的课程")
public class CourseSchedulingVo {

    @ApiModelProperty(value = "课程id")
    private Long courseId;

    @ApiModelProperty(value = "课程名称")
    private String name;

    @ApiModelProperty(value = "课程排期集合")
    private List<Scheduling> schedulings;

    @ApiModelProperty(value = "课程地址")
    private HashMap<String, Object> address;

    @Data
    @ApiModel(value = "课程排期")
    public static class Scheduling {

        @ApiModelProperty(value = "排课主键id")
        private Long schedulingId;

        @ApiModelProperty(value = "课程语言")
        private String language;

        @ApiModelProperty(value = "排课日期")
        private String schedulingDate;

        @ApiModelProperty(value = "排课当天开始时间")
        private String schedulingStartTime;

        @ApiModelProperty(value = "排课当天结束时间")
        private String schedulingEndTime;

        @ApiModelProperty(value = "课程价格")
        private BigDecimal price;

        @ApiModelProperty(value = "剩余席位")
        private Integer remainingSeatCount;

        @ApiModelProperty(value = "课程状态 0=已结束 1=进行中 2=未开始")
        private Integer schedulingStatus;

        @ApiModelProperty(value = "预约状态 true=Reservable false=Non bookable")
        private Boolean status;

        @ApiModelProperty(value = "是否预约过 true=Reserved false=No appointment")
        private Boolean isAppointment=false;

        @ApiModelProperty(value = "当前排期预约是否已截止 true=已截止，不可预约 false=未截止，可预约")
        private Boolean isStopAppointment = false;

        @ApiModelProperty(value = "是否删除")
        private Boolean isDel;
    }
}
